﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLLJom
{
    public class BLLUsuario : BLLJomGenerico
    {
        public BLLUsuario(AplicacionesDataContext context) : base(context) { }
        public BLLUsuario() : this(new AplicacionesDataContext()) { }

        public bool ValidarLogin(string nombreUsuario, string contraseña, string ip)
        {
            bool login = false;
            JOM_Usuario usuario = TraerUsuario(nombreUsuario);
            BLLRegistroLogin bllRegistro = new BLLRegistroLogin(Context);

            if (usuario != null && bllRegistro.EsLogueable(nombreUsuario))
            {
                string contraseñaDesencriptada = Encriptador.Desencriptar(usuario.Contraseña);
                login = contraseñaDesencriptada.Equals(contraseña);
            }

            bllRegistro.RegistrarLogin(nombreUsuario, login, ip);

            return login;
        }

        public JOM_Usuario TraerUsuario(string nombreUsuario)
        {
            return Context.JOM_Usuarios.Where(u => u.Nombre.Equals(nombreUsuario)).FirstOrDefault();
        }

        public void RegistrarUsuario(JOM_Usuario nuevoUsuario)
        {
            nuevoUsuario.Contraseña = Encriptador.Encriptar(nuevoUsuario.Contraseña);
            Context.JOM_Usuarios.InsertOnSubmit(nuevoUsuario);
        }
    }
}
